package com.showdoc.utils;

import lombok.Data;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;

@Data
@Component
public class R<T> {
    private Integer code; //编码：1成功，0和其它数字为失败

    private String msg; //错误信息

    private T data; //数据

    private Map map = new HashMap(); //动态数据
//
//    /**
//     * se  成功或者失败
//     */
//    private boolean se;
//
//    private HttpStatus status;
//
//    private Long count = 0L;
//
//    private static final int errorCode = 400;
//
//    private static final int layuiCode = 0;
//
//    private static final int apiCode = 200;
//
//    private static final String successMsg = "操作成功";
//
//    private static final String errorMsg = "操作失败";
//
//    private Map<String, Object> map = new HashMap<String, Object>();

    public static <T> R<T> success(T object) {
        R<T> r = new R<T>();
        r.data = object;
        r.code = 1;
        return r;
    }

    public static <T> R<T> error(String msg) {
        R r = new R();
        r.msg = msg;
        r.code = 0;
        return r;
    }

    //添加动态数据
    public R<T> add(String key, Object value) {
        this.map.put(key, value);
        return this;
    }
}

//    public static <T> R<T> success() {
//        return R.ok(successMsg);
//    }
//
//    public static <T> R<T> success(T data) {
//        return R.ok(successMsg, data);
//    }
//
//    public static <T> R<T> success(String msg) {
//        return R.ok(msg);
//    }
//
//    public static <T> R<T> success(String msg, T data) {
//        return R.ok(msg, data);
//    }
//
//
//    public static <T> R<T> error() {
//        return R.error(errorMsg);
//    }
//
//    public static <T> R<T> error(T data) {
//        return R.error(errorMsg, data);
//    }
//
//    public static <T> R<T> error(String msg, T data) {
//        R<T> result = new R<T>();
//        result.setCode(errorCode);
//        result.setSe(false);
//        result.setMsg(msg);
//        result.setData(data);
//        return result;
//    }
//
//    public static <T> R<T> error(String msg) {
//        R<T> result = new R();
//        result.setCode(errorCode);
//        result.setSe(false);
//        result.setMsg(msg);
//        return result;
//    }
//
//    public static <T> R<T> error(HttpStatus status, String msg) {
//        R<T> result = new R();
//        result.setCode(errorCode);
//        result.setStatus(status);
//        result.setSe(false);
//        result.setMsg(msg);
//        return result;
//    }
//
//    public static <T> R<T> ok(String msg) {
//        R result = new R();
//        result.setCode(layuiCode);
//        result.setSe(true);
//        result.setMsg(msg);
//        return result;
//    }
//
//    public static R flag(Boolean b) {
//        if (b) {
//            return R.success();
//        } else {
//            return R.error();
//        }
//    }
//
//
//    public static <T> R<T> ok(String msg, T data) {
//        R<T> result = new R<T>();
//        result.setCode(layuiCode);
//        result.setSe(true);
//        result.setMsg(msg);
//        result.setData(data);
//        return result;
//    }
//
//
//    /**
//     * @param number
//     * @return
//     * @Title: flag
//     * @Description: (判断受影响行数大于successCode返回成功 否则返回false)
//     * @date 2successCode19年9月23日 下午12:successCode3:54
//     * @author 马超伟
//     */
//    public static R influenceQuantity(Integer number) {
//        if (number > 0) {
//            return R.success();
//        } else {
//            return R.error();
//        }
//    }
//
//    /**
//     * @param number
//     * @return
//     * @Title: flag
//     * @Description: (判断受影响行数大于successCode返回成功 否则返回false)
//     * @date 2successCode19年9月23日 下午12:successCode3:54
//     * @author 马超伟
//     */
//    public static R influenceQuantity(Integer number, String msg) {
//        if (number > 0) {
//            return R.success(msg + successMsg);
//        } else {
//            return R.error(msg + errorMsg);
//        }
//    }
//
//
//    public static final R selectOk() {
//        R result = new R();
//        result.setCode(0);
//        result.setMsg("查询成功");
//        result.setSe(true);
//        return result;
//    }
//
//    public static final R saveOk() {
//        R result = new R();
//        result.setCode(0);
//        result.setMsg("保存成功");
//        result.setSe(true);
//        return result;
//    }
//
//    public static final R deleteOk() {
//        R result = new R();
//        result.setCode(0);
//        result.setMsg("删除成功");
//        result.setSe(true);
//        return result;
//    }
//
//    public static final R UpdateOk() {
//        R result = new R();
//        result.setCode(0);
//        result.setMsg("修改成功");
//        result.setSe(true);
//        return result;
//    }
//
//    public static final R UpdateFail() {
//        R result = new R();
//        result.setCode(400);
//        result.setMsg("修改失败");
//        result.setSe(false);
//        return result;
//    }
//
//    public static final R deleteFail() {
//        R result = new R();
//        result.setCode(400);
//        result.setMsg("删除失败");
//        result.setSe(false);
//        return result;
//    }
//
//    public static final R saveFail() {
//        R result = new R();
//        result.setCode(400);
//        result.setMsg("添加失败");
//        result.setSe(false);
//        return result;
//    }
//
//    public static final R selectFail() {
//        R result = new R();
//        result.setCode(400);
//        result.setMsg("查询失败");
//        result.setSe(false);
//        return result;
//    }
//}
